
=begin
  1.Sao dados um vetor v com 10 inteiros e um inteiro n. Escreva o codigo para determinar
  se existe um par de elementos em v cuja soma seja igual a n.

  Ex.: v = [1,5,7,4,3,2]

  se n = 11, a resposta é "existe" pois 7+4=11
  se n = 2, a resposta é "não existe"
=end
def find_in_sum(vector,num)
  count = 0
  for j in (0...(vector.size))
    for k in ((j+1)...(vector.size))
      puts "tendando #{j}: #{vector[j]} + #{vector[k]}"
      if (vector[j] + vector[k] == num)
        puts "\tA soma de #{vector[j]} + #{vector[k]} é igual a #{num}"
        count = count + 1
      end
    end
  end
  puts "\tNum. de valores encontrados: #{count}.", "\n"
  if (count == (vector.size - 1))
    puts "Não existe!"
  end
end


=begin
  3. Dado um vetor com 10 inteiros, encontrar o maior e o menor elemento.
=end
def max_min(vector)
  maior = vector[0]
  menor = vector[0]
  for l in (1...vector.size)
    maior = vector[l] if (vector[l] > maior)
    menor = vector[l] if (vector[l] < menor)
  end
  puts "O maior valor do vector é #{maior} e o menor é #{menor}."
end


=begin
  4. Metodo da selecao: ache o menor e jogue-o para o inicio.
=end
def selection_sort(vector)
  
	for m in (0...vector.size)
    index_menor = m
    for n in (m+1...vector.size)
      index_menor = n if (vector[n] < vector[index_menor])
    end
    
    aux = vector[index_menor]
    vector[index_menor] = vector[m]
    vector[m] = aux
    
#    for n in (m+1...vector.size)
#      aux = vector[m]
#      vector[m] = menor
#      vector[vector.index(menor)] = aux
#    end
  end
  return vector
end

########
# MAIN #
########
begin
  puts "Digite a questão: [1 - 3 - 4]"
  opcao = gets
  vector = Array.new
  for i in (0...10)
    vector.push(rand(10))
  end
  case opcao.to_i
  when 1
    puts "Saber se existe num igual a soma de 2 numeros de um vetor."
    puts "Digite um numero inteiro: "
    num = gets.to_i
    p vector
    puts "\n"
    find_in_sum(vector, num)
  when 3
    puts "Descubra o maior e o menor valor de um vector"
    p vector
    max_min(vector)
  when 4
    puts "Metodo da Seleção:"
    p vector
    p selection_sort(vector)
  end
rescue Exception => ex
  exit(1)
end
